1. Field of the Invention
This invention relates to the field of microprocessors and, more particularly, to debugging and testing of microprocessors.
2. Description of the Related Art
Integrated circuit (IC) designers use many tools to debug a new IC when it is first manufactured. Depending upon the level of complexity of the IC, the “first silicon” may be difficult if not impossible to test and debug. In some cases, the first silicon of the IC may be impossible to test if some of the subsystems associated with the IC are not functional. In other cases, the time allocated for IC debug may be necessarily long. The increased time to debug and test may adversely impact the time to market for many ICs. This may be particularly true of microprocessors.
Due to the complexity of microprocessors, and the length of the development cycle, faster and more powerful debugging tools have been developed. These tools include both features internal to the microprocessor which facilitate debugging, and external tools such as logic analyzers and debug/test software.
Some microprocessor debug and test systems may be implemented using a computer system such as a personal computer (PC). The PC is coupled to interface hardware, which is in turn coupled to the microprocessor. Software tools are executed on the PC to provide debug/test functionality. Because of the complexity of microprocessors and their functions, software debug/test tools must also be very complex. Individual tests must be conducted on the microprocessor to ensure that each of the functions of the device is properly performed. In a typical debug system, diagnostic code may be loaded into a system memory and executed by the microprocessor.
However, microprocessors may be associated with many subsystems including peripheral circuit chipsets, which if not operating, may preclude running diagnostic software routines. For example, microprocessors may rely on a basic input/output system (BIOS) read-only memory (ROM), system memory, and input/output (I/O) subsystems to simply boot up and begin executing code. If any of these subsystems are inoperative or are not present, the microprocessor may be incapable of loading and running the diagnostic software. Thus, in the absence of associated chipsets, system memory and peripheral devices, it may be difficult to debug a microprocessor using traditional test and debug methods.